package com.literature.search.file.controller;

import com.literature.search.core.entity.R.AjaxJson;
import com.literature.search.core.entity.dto.BasePageDTO;
import com.literature.search.core.entity.dto.BatchIdDTO;
import com.literature.search.file.service.IFileReviewService;
import com.literature.search.file.service.IFileService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.validation.Valid;

/**
 * @Author: DangKong
 * @Date: 2023/3/3 13:58
 * @Description: 文档评审
 */

@Slf4j
@RestController
@Api(tags = "文档评审")
@RequestMapping("/fileReview")
public class FileReviewController {

    @Resource
    private IFileService fileService;

    @Resource
    private IFileReviewService fileReviewService;

    /**
     * 普通用户、管理员用户，列表查询
     * 该接口必须在登录条件下才能查询
     * 普通普通查询到自己上传的文档
     * 管理员查询到所有的文档评审信息
     * 必须是管理员才有资格进行评审
     *
     * @return AjaxJson
     */

    @ApiOperation(value = "查询需要评审的文档列表--这个偏向管理员", notes = "查询需要评审的文档列表")
    @GetMapping("queryFileForReview")
    public AjaxJson queryDocReviewList(@ModelAttribute("pageParams") @Valid BasePageDTO pageParams) {
        return fileService.queryFileDocumentResult(pageParams, true);
    }

    /**
     * @Description  同意文档的信息
     * @Param [batchIdDTO]
     **/
    @ApiOperation(value = "同意一批文档",notes = "我就不单独写同意一个文档的接口了，直接批量同意吧，可传多个或者一个id")
    @PostMapping("approveBatch")
    public AjaxJson approve(@RequestBody @Valid BatchIdDTO batchIdDTO) {
        return fileReviewService.approveBatch(batchIdDTO.getIds());
    }

    /**
     * @Description  拒绝文档的信息
     * @Param [batchIdDTO]
     **/
    @ApiOperation(value = "拒绝一批文档",notes = "我就不单独写拒绝一个文档的接口了，直接批量拒绝吧，可传多个或者一个id")
    @PostMapping("rejectBatch")
    public AjaxJson reject(@RequestBody @Valid BatchIdDTO batchIdDTO) {
        return fileReviewService.rejectBatch(batchIdDTO.getIds());
    }

}
